import requests
import re

# 其中 toplist以及页码都能更改
url = 'https://wallhaven.cc/toplist?page=1'
# 第一次请求相应页面中html点击缩略图a标签中网址
response = requests.get(url)
# 正则提取详细地址
img_url = re.findall(r'<a class="preview" href="(.*?)"  target="_blank"  ></a>', response.text)
for img in img_url:
    # 第二次请求图片详情页中的html信息
    response = requests.get(img)
    # 由于每张图片分辨率不同因此不能采用标签 只能抓取所有src属性 其中第三个数据为图片连接
    img_url = re.findall(r'\bsrc="([^"]+)"', response.text)
    # 第三次请求对应图片网址然后读取二进制直接流
    response = requests.get(img_url[2])
    # 写入文件 名字用图片原本名字
    with open(f'../static/wallhaven/{img_url[2].split("/")[-1]}', 'wb') as f:
        f.write(response.content)
